1. Field of the Invention
This invention generally pertains to a server computing device verifying a condition existing on a client computing device, and more specifically, pertains to a server computing device issuing a challenge to a client computing device and comparing a response received from the client computing device to an expected response.
2. Background and Related Art
The playing of electronic games over the Internet by multiple players has become an increasingly popular pastime. Although games designed to run on personal computers (PCs) and on dedicated electronic game systems, such as Microsoft Corporation's XBOX™ game system, are designed to enable multiple players to play in a local game session, games played over the Internet offer users the opportunity to match skills against a much broader range of players and to play at any time. Multiplayer games over a network are typically implemented by enabling each of a plurality of client computing devices to connect to a server computing device over the network, so that the server computing device facilitates game interaction between the players of a plurality of different games. To simplify the following discussion, the term “client” will be used instead of client computing device, and the term “server” will be used instead of server computing device, but the broader concept of these entities is intended to apply.
Ideally, only the skill of players participating in online game play should determine who wins a game. However, online garners are notorious for developing creative ways to cheat during online game play, so that a player's skill in playing a game is not necessarily determinative of who wins the game. For example, game software can be modified (for example, using a Game Shark program) to provide a player with more lives, more energy, more protection, and other attributes, so that the player has a substantial advantage over players who are running an unmodified version of the game program. Playing against another person who is cheating in this manner can be very frustrating and will not be enjoyable, since the game is often no longer won by the more skillful player, but instead, is won by the player who is cheating by using a modified game program. Accordingly, it would be desirable for a server at a game playing site to be able to detect if a player is using a modified game program so that the server can take appropriate action to prevent such a modified program from being used in online game play by a player who is connected to the server.
Dedicated electronic game playing systems can also be modified to enable a player to cheat when playing online games. For example, it is possible for a player to connect a replacement memory module containing a modified basic input output system (BIOS) to a game console, to replace the original BIOS, and thus, enable functionality and changes to the system that would not be permitted while running the system with the original BIOS. The modified BIOS can permit unauthorized or pirated copies of games to be played and can permit a user to avoid zone restrictions regarding games that can be played on the game console. More importantly, use of a modified chip in a game console can allow other types of cheating behavior during game play. Thus, it would also be desirable to detect modifications that have been made to an electronic game system when the game system is logging onto a game site to play a multiplayer game, and/or during play of such a game, to enable an appropriate action to be taken by a server at the site.
In a more general sense, it would further be desirable to enable a server to challenge a client device in regard to any desired condition on the client when the user of the client device is attempting to log on or sign in to a service provided on the server, to enable the server to determine if some characteristic or condition of the client is different than expected. It will be apparent that this procedure is not limited to a game playing function provided by the server or limited to game playing clients. If the response returned from a client is not as expected, then the server should be able to automatically take appropriate action. For example, the server might simply terminate the current session with the client, and might record an identification of the client in a database to prevent the client from ever again using the service provided on the server, even if the response returned from the client to the server in a future session is as expected.